#pragma once
#include <vector>
#include "Polynomial.h"

class VGQAsympExp
{
public:
	VGQAsympExp(double mu, double lambda, double alpha, double beta, size_t nTerms = 5);
	~VGQAsympExp(void);

	double LeftTail(double u) const;
	double RightTail(double u) const;

private:
	int _nTerms;
	double _mu, _lambda, _alpha, _beta, _gamma;
	double _const1;
	std::vector<Polynomial> _rightPolynomials;
	std::vector<Polynomial> _leftPolynomials;

	double yVar(double beta, double u) const;
	double Evaluate(const std::vector<Polynomial>& polynomials, double beta, double u) const;
	
};

